<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>

    <input type="text" id="year">
    <input type="text" id="month">
    <input type="text" id="day">
    <input type="button" value="判断" id="btn">

    <script>

        // 思路：
        // 先判断年输入正确，才判断月，月份正确才判断日期
        //   年  1000 - 3000  
        //   月  1-12
        //   日  1-？


        // 1 拿对象
        var oYear = document.getElementById('year') ;
        var oMonth = document.getElementById('month') ;
        var oDay = document.getElementById('day') ;
        var oBtn = document.getElementById('btn') ;

        // 2 事件
        oBtn.onclick = function () {  
            // 拿到年
            var y = oYear.value ;
            // 判断年是否正确
            if(y >= 1000 && y <= 3000 && y % 1 === 0) {
                // 拿月份
                var m = oMonth.value ;
                if(m >= 1 && m <= 12 && m % 1 === 0) {
                    // 拿日期
                    var d = oDay.value ;
                    // maxDay 表示最大的天数
                    var maxDay ;
                    if(m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) {
                        maxDay = 31 ;
                    }
                    else if(m == 4 || m == 6 || m == 9 || m == 11) {
                        maxDay = 30
                    }
                    else {
                        if(y % 4 === 0 && y % 100 !== 0 || y % 400 === 0) {
                            maxDay = 29 ;
                        }
                        else {
                            maxDay = 28 ;
                        }
                    }
                    if(d >= 1 && d <= maxDay && d % 1 === 0)  {
                        alert('ok') ;
                    } else {
                        alert('日期不正确');
                    }
                } else {
                    alert('月不正确') ;
                }
            } else {
                alert('年不正确') ;
            }
        }


    </script>
    
</body>
</html>